package com.tinfeng.uplevel;

public class JavaReflection {
    // java反射
    /**
     * 什么是反射
     * Java 的反射（reflection）机制是指在程序的运行状态中，可以构造任意一个类的对象，可以了解任意一个对象所属的类，
     * 可以了解任意一个类的成员变量和方法，可以调用任意一个对象的属性和方法。
     * 这种动态获取程序信息以及动态调用对象的功能称为 Java 语言的反射机制。反射被视为动态语言的关键。
     *
     * java反射可在运行期间动态获取类的属性和方法，动态的实例化
     *
     * 反射的使用场景
     * Java 的反射机制，主要用来编写一些通用性较高的代码或者编写框架的时候使用。
     * 通过反射的概念，我们可以知道，在程序的运行状态中，对于任意一个类，通过反射都可以动态获取其信息以及动态调用对象
     */

    /**
     * lass 类
     * 4.1 Class 类和 class 文件的关系
     * java.lang.Class 类用于表示一个类的字节码（.class）文件。
     *
     * 4.2 获取 Class 对象的方法
     * 想要使用反射，就要获取某个 class 文件对应的 Class 对象，我们有 3 种方法：
     *
     * 类名.class：即通过一个 Class 的静态变量 class 获取，实例如下：
     * Class cls = ImoocStudent.class;
     * 代码块
     * 1
     * 对象.getClass ()：前提是有该类的对象实例，该方法由 java.lang.Object 类提供，实例如下：
     * ImoocStudent imoocStudent = new ImoocStudent("小慕");
     * Class imoocStudent.getClass();
     *
     * Class.forName (“包名。类名”)：如果知道一个类的完整包名，可以通过 Class 类的静态方法 forName() 获得 Class 对象，实例如下：
     * class cls = Class.forName("java.util.ArrayList");
     */
}
